package com.lovo.practice_7_8;

import java.net.PasswordAuthentication;
import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * 注册功能需求：
 * 1. 输入用户名，要求6-20位字母、数字、下划线组成
 * 2. 输入密码，要求(必须包含大小写字母和数字的组合，不能使用特殊字符，长度不少于6位）
 * 3. 输入确认密码，要求和密码一致
 * 4. 输入邮箱
 */

public class Register {
    boolean UseNameBoolean = true;
    boolean PasswordBoolean = true;
    boolean EmailBoolean = true;
    private String password;
    private String Email;
    private String UserName;

    public String getPassword() {
        return password;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String userName) {
        UserName = userName;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setEmail(String email) {
        Email = email;
    }

    public String getEmail() {
        return Email;
    }

    Scanner scan = new Scanner(System.in);

    public void RegistMethod() {

        System.out.println("用户注册");
        while (UseNameBoolean) {
            System.out.println("请设置用户名（6-20位字母、数字、下划线组成）");
            String p = scan.next();
            if (p.matches("^[0-9a-zA-Z_]{6,20}$")) {
                setUserName(p);
                UseNameBoolean = false;
            } else {
                System.out.println("用户名设置错误，请重新设置正确格式的用户名");
            }
        }

        while (PasswordBoolean) {
            System.out.println("请设置密码（必须包含大小写字母和数字的组合，不能使用特殊字符，长度不少于6位）");
            String a = scan.next();
            if (a.matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,}$")) {
                setPassword(a);
                System.out.println("请确认密码(和上次输入密码一致)");
                if (scan.next().equals(getPassword())) {
                    PasswordBoolean = false;
                } else {
                    System.out.println("两次密码不一致，请重新设置");
                }
            } else {
                System.out.println("密码设置错误，请重新设置正确格式的密码");
            }
        }
        while (EmailBoolean) {
            System.out.println("请设置邮箱");
            String b = scan.next();
            if (b.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$")) {
                setEmail(b);
                EmailBoolean = false;
            } else {
                System.out.println("邮箱格式错误，请重新输入正确格式的邮箱");
            }
        }
        System.out.println("注册成功");
    }
//测试
    public static void main(String[] args) {
        Register register = new Register();
        register.RegistMethod();
    }
}


